虚拟化技术有哪些类型
虚拟化技术有以下类型:
硬件分区技术:硬件资源被划分成数个分区,每个分区享有独立的CPU、内存,并安装独立的操作系统。在一台服务器上,存在多个系统实例,同时启动了多个操作系统。这种分区方法的主要缺点是缺乏很好的灵活性,不能对资源做出有效调配。随着技术的进步,现在对于资源划分的颗粒已经远远提升,例如在IBM AIX系统上,对CPU资源的划分颗粒可以达到0.1个CPU。
虚拟机技术:在虚拟机技术中,不再对底层的硬件资源进行划分,而是部署一个统一的Host系统。在Host系统上,加装了Virtual Machine Monitor,虚拟层作为应用级别的软件而存在,不涉及操作系统内核。虚拟层会给每个虚拟机模拟一套独立的硬件设备,包含CPU、内存、主板、显卡、网卡等硬件资源,在其上安装所谓的Guest操作系统。这种虚拟机运行的方式有一定的优点,比如能在一个节点上安装多个不同类型的操作系统;但缺点也非常明显,虚拟硬件设备要消耗资源,大量代码需要被翻译执行,造成了性能的损耗,使其更合适用于实验室等特殊环境。
准虚拟机技术:为了改善虚拟机技术的性能,一种新的准虚拟化技术技术诞生了。这种虚拟技术以Xen为代表,其特点是修改操作系统的内核,加入一个XenHypervisor层。它允许安装在同一硬件设备上的多个系统同时启动,由XenHypervisor来进行资源调配。在这种虚拟环境下,依然需要模拟硬件设备,安装Guest操作系统,并且还需要修改操作系统的内核。
操作系统虚拟化技术:最新的虚拟化技术已经发展到了操作系统虚拟化,以SWsoft的Virtuozzo/OpenVZ和Sun基于Solaris平台的Container技术为代表,其中Virtuozzo是商业解决方案,而OpenVZ是以Virtuozzo为基础的开源项目。他们的特点是一个单一的节点运行着唯一的操作系统实例。通过在这个系统上加装虚拟化平台,可以将系统划分成多个独立隔离的容器,每个容器是一个虚拟的操作系统,被称为虚拟环境,也被称为虚拟专用服务器。
容器虚拟化Docker:现在docker内部使用的技术是Linux容器(LXC技术),运行在与它宿主机同样的操作系统上,准许它可以和宿主机共享许多系统资源,它也会使用AuFS作为文件系统,管理网络。AuFS是一个层状的文件系统,因此可以有一个只读部分和一个只写部分,二者结合起来,可以使系统的共同部分用做只读,那部分被所有容器共享,并且给每个容器自己的可写区域。